In modern computing, many software applications are being offered via cloud-based services. Client devices are able to select from among a plurality of Software as a Service (SaaS) packages that best meet system requirements. Once an SaaS service receives a request for a software package, the service can begin provisioning the software package. In general, provisioning means providing or making the requested software package available to the client device. For large Enterprise applications and cloud-based services, the provisioning process is largely a manual process due to its complexity and the number of resources involved.